package model

// 分页请求
type ReqList struct {
	PageSize       int      `json:"pageSize"`
	PageNo         int      `json:"pageNo"`
	Keyword        string   `json:"keyword"`
	Phone          string   `json:"phone"`
	Action         string   `json:"action"`
	Keyword2       string   `json:"keyword2"`
	TimeRange      []string `json:"timeRange"`
	State          string   `json:"state"`
	Type           string   `json:"type"`
	GroupId        string   `json:"groupId"`
	GoodsId        string   `json:"goodsId"`
	IsExpire       string   `json:"isExpire"`
	IsStaff        string   `json:"isStaff"`
	IsVerifier     string   `json:"isVerifier"`
	Latitude       float64  `json:"latitude"`
	Longitude      float64  `json:"longitude"`
	PayState       string   `json:"payState"`
	GroupNum       string   `json:"groupNum"`
	GroupMemberNum string   `json:"groupMemberNum"`
	IsRobot        string   `json:"isRobot"`
	GroupState     string   `json:"groupState"`
	IsNewOld       string   `json:"isNewOld"`
	UserId         int      `json:"user_id"`
	FromId         string   `json:"from_id"`
	StaffId        string   `json:"staff_id"`
	Address        string   `json:"address"`
}

// 多个ID
type ReqIds struct {
	Ids []int `json:"ids" binding:"required" required_err:"请选择要操作的记录"`
}

// 单个ID
type ReqId struct {
	Id int `json:"id" binding:"required" required_err:"请选择要操作的记录"`
}

// 商品ID
type ReqGoodsId struct {
	GoodsId int `json:"goodsId" binding:"required" required_err:"商品ID缺失"`
}

// 腾讯地图放回
type Map struct {
	Status    int    `json:"status"`
	Message   string `json:"message"`
	RequestId string `json:"request_id"`
	Result    struct {
		Ip       string `json:"ip"`
		Location struct {
			Lat float64 `json:"lat"`
			Lng float64 `json:"lng"`
		} `json:"location"`
		AdInfo struct {
			Nation     string `json:"nation"`
			Province   string `json:"province"`
			City       string `json:"city"`
			District   string `json:"district"`
			Adcode     int    `json:"adcode"`
			NationCode int    `json:"nation_code"`
		} `json:"ad_info"`
	} `json:"result"`
}

type AreaId struct {
	ProvinceId int `json:"province_id"`
	CityId     int `json:"city_id"`
	DistrictId int `json:"district_id"`
}
type IpAddr struct {
	Status      string  `json:"status"`
	Country     string  `json:"country"`
	CountryCode string  `json:"countryCode"`
	Region      string  `json:"region"`
	RegionName  string  `json:"regionName"`
	City        string  `json:"city"`
	Zip         string  `json:"zip"`
	Lat         float64 `json:"lat"`
	Lon         float64 `json:"lon"`
	Timezone    string  `json:"timezone"`
	Isp         string  `json:"isp"`
	Org         string  `json:"org"`
	As          string  `json:"as"`
	Query       string  `json:"query"`
}
type EmptyStruct struct{}
type VideoInfo struct {
	Streams []struct {
		Index              int    `json:"index"`
		CodecName          string `json:"codec_name"`
		CodecLongName      string `json:"codec_long_name"`
		Profile            string `json:"profile"`
		CodecType          string `json:"codec_type"`
		CodecTimeBase      string `json:"codec_time_base"`
		CodecTagString     string `json:"codec_tag_string"`
		CodecTag           string `json:"codec_tag"`
		Width              int    `json:"width,omitempty"`
		Height             int    `json:"height,omitempty"`
		CodedWidth         int    `json:"coded_width,omitempty"`
		CodedHeight        int    `json:"coded_height,omitempty"`
		HasBFrames         int    `json:"has_b_frames,omitempty"`
		SampleAspectRatio  string `json:"sample_aspect_ratio,omitempty"`
		DisplayAspectRatio string `json:"display_aspect_ratio,omitempty"`
		PixFmt             string `json:"pix_fmt,omitempty"`
		Level              int    `json:"level,omitempty"`
		ChromaLocation     string `json:"chroma_location,omitempty"`
		Refs               int    `json:"refs,omitempty"`
		IsAvc              string `json:"is_avc,omitempty"`
		NalLengthSize      string `json:"nal_length_size,omitempty"`
		RFrameRate         string `json:"r_frame_rate"`
		AvgFrameRate       string `json:"avg_frame_rate"`
		TimeBase           string `json:"time_base"`
		StartPts           int    `json:"start_pts"`
		StartTime          string `json:"start_time"`
		DurationTs         int    `json:"duration_ts"`
		Duration           string `json:"duration"`
		BitRate            string `json:"bit_rate"`
		BitsPerRawSample   string `json:"bits_per_raw_sample,omitempty"`
		NbFrames           string `json:"nb_frames"`
		Disposition        struct {
			Default         int `json:"default"`
			Dub             int `json:"dub"`
			Original        int `json:"original"`
			Comment         int `json:"comment"`
			Lyrics          int `json:"lyrics"`
			Karaoke         int `json:"karaoke"`
			Forced          int `json:"forced"`
			HearingImpaired int `json:"hearing_impaired"`
			VisualImpaired  int `json:"visual_impaired"`
			CleanEffects    int `json:"clean_effects"`
			AttachedPic     int `json:"attached_pic"`
			TimedThumbnails int `json:"timed_thumbnails"`
		} `json:"disposition"`
		Tags struct {
			Language    string `json:"language"`
			HandlerName string `json:"handler_name"`
		} `json:"tags"`
		SampleFmt     string `json:"sample_fmt,omitempty"`
		SampleRate    string `json:"sample_rate,omitempty"`
		Channels      int    `json:"channels,omitempty"`
		ChannelLayout string `json:"channel_layout,omitempty"`
		BitsPerSample int    `json:"bits_per_sample,omitempty"`
		MaxBitRate    string `json:"max_bit_rate,omitempty"`
	} `json:"streams"`
	Format struct {
		NbStreams      int    `json:"nb_streams"`
		NbPrograms     int    `json:"nb_programs"`
		FormatName     string `json:"format_name"`
		FormatLongName string `json:"format_long_name"`
		StartTime      string `json:"start_time"`
		Duration       string `json:"duration"`
		Size           string `json:"size"`
		BitRate        string `json:"bit_rate"`
		ProbeScore     int    `json:"probe_score"`
		Tags           struct {
			MajorBrand       string `json:"major_brand"`
			MinorVersion     string `json:"minor_version"`
			CompatibleBrands string `json:"compatible_brands"`
			Comment          string `json:"comment"`
			Encoder          string `json:"encoder"`
		} `json:"tags"`
	} `json:"format"`
}
type GenerateCode struct {
	Path  string `json:"path" binding:"required" required_err:"参数缺失【path】"`
	Param string `json:"param" binding:"required" required_err:"参数缺失【param】"`
}
type ReqListV2 struct {
	PageSize int `json:"pageSize"`
	PageNo   int `json:"pageNo"`
	FromId   int `json:"from_id"`
	State    int `json:"state"`
}
type ReqMiniCode struct {
	Path  string `json:"path"`
	Param string `json:"param"`
	Url   string `json:"url"`
}
type ReqWechatPay struct {
	NotifyUrl string  `json:"notify_url"`
	Openid    string  `json:"openid"`
	OrderNo   string  `json:"order_no"`
	PayAmount float32 `json:"pay_amount"`
	Desc      string  `json:"desc"`
	SubMchId  string  `json:"sub_mch_id"`
}
type RspList struct {
	Total int64       `json:"total"`
	List  interface{} `json:"list"`
}
